#include <stdio.h>
#include <stdint.h>
//检验计算机的字节序
#include <stdio.h>

typedef unsigned char *byte_pointer;

void show_bytes(byte_pointer start, int len) {
    for (int i = 0; i < len; i++)
        printf("%.2x ", start[i]);
    printf("\n");
}

void show_int(int x) {
    show_bytes((byte_pointer)&x, sizeof(int));
}

void show_float(float x) {
    show_bytes((byte_pointer)&x, sizeof(float));
}

void show_pointer(void *x) {
    show_bytes((byte_pointer)&x, sizeof(void *));
}
void test_show_bytes(int val)
{
    int ival = val;
    float fval = (float)ival;
    int *pval = &ival;

    show_int(ival);
    show_float(fval);
    show_pointer(pval);
}
int main() {
    uint32_t num = 0x12345678;
    uint8_t *p = (uint8_t *)&num;
    test_show_bytes(num);
    printf("0x%02X 0x%02X 0x%02X 0x%02X\n", p[0], p[1], p[2], p[3]);
    return 0;
}

